home *** CD-ROM | disk | FTP | other *** search
- //: C20:Swapping.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // All basic sequence containers can be swapped
- #include "Noisy.h"
- #include <list>
- #include <vector>
- #include <deque>
- #include <iostream>
- #include <algorithm>
- using namespace std;
- ostream_iterator<Noisy> out(cout, " ");
-
- template<class Cont>
- void print(Cont& c, char* comment = "") {
- cout << "\n" << comment << ": ";
- copy(c.begin(), c.end(), out);
- cout << endl;
- }
-
- template<class Cont>
- void testSwap(char* cname) {
- Cont c1, c2;
- generate_n(back_inserter(c1), 10, NoisyGen());
- generate_n(back_inserter(c2), 5, NoisyGen());
- cout << "\n" << cname << ":" << endl;
- print(c1, "c1"); print(c2, "c2");
- cout << "\n Swapping the " << cname
- << ":" << endl;
- c1.swap(c2);
- print(c1, "c1"); print(c2, "c2");
- }
-
- int main() {
- testSwap<vector<Noisy> >("vector");
- testSwap<deque<Noisy> >("deque");
- testSwap<list<Noisy> >("list");
- } ///:~
-